package com.zzyl.task;

import com.zzyl.utils.UserThreadLocal;
import lombok.extern.slf4j.Slf4j;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

import java.util.Date;

/**
 * @className: MyTask
 * @description:
 * @author: InnovatorX
 * @date: 2024/5/30 9:17
 * @Version: 1.0
 */
@Slf4j
@Component
public class MyTask {
    private static int count = 0;
    /**
     * fixedDelay: 上一次任务执行完毕时间点之后多长时间再执行, 单位毫秒
     * fixedRate: 设置任务执行周期，上一次开始执行时间点之后多长时间执行一次, 单位毫秒(严格按照频次执行,少几次就补几次)
     * cron: 使用cron表达式设置任务执行时间
        * 秒: 0~59, 分:0~59 , 时: 0~23, 日: 1~31, 月: 1~12, 周1~7
        *    * * * * ?
     *
     */
    @Scheduled(cron = "* 1,31 * * * ?")// 设置定时任务的时间
    public void testTask()  {
        //把已经过期的预约状态修改为 已失效   字段  status  预约时间 2024-05-29 08:00:00
        // 要求在每小时的1分钟和31分钟自动检查是否有过时的预约，如果有，则改为已过期
//        UserThreadLocal userThreadLocal = new UserThreadLocal();
    }

    /*@Scheduled(fixedRate = 2000)// 设置定时任务的时间内容
    public void testTask() throws InterruptedException {
        count++;
        log.info("定时任务执行:{}", new Date());
        if (count == 3){
            Thread.sleep(3000);
        }
    }*/
    /*@Scheduled(fixedDelay = 2000)// 设置定时任务的间隔时间
    public void testTask() throws InterruptedException {
        count++;
        log.info("定时任务执行:{}", new Date());
        if (count == 3){
            Thread.sleep(3000);
        }
    }*/
}
